Much of popular music is performed with rhythmic synchronization between musicians. Performing this style of music with musicians remote from each other, such as via an Internet connection and the like, is difficult due to network latency and other Quality of Service (QoS) issues. For example, network packets containing encoded audio take time to travel from a sender (playing musician) to a receiver (listening musician), resulting in a delay between when a note is played by the playing musician and when it is heard by the listening musician. Further, a listening musician instinctively waits to play in order to play in time with the music she hears from the playing musician, which causes further delay. This, in turn, causes a cascade effect denoted as a tempo drag where players on each side of a connection wait longer and longer. If there is too much latency, timing falls apart.
There is currently no device for synchronizing tempo or audio over long distances. The current approach is to have devices negotiate sync over a network. This has a number of well-studied problems, the biggest of which is that while it is impossible to estimate network congestion in each direction, all common network clock synchronization approaches nevertheless assume that congestion is the same in both directions.